// stores/cart.js
import { defineStore } from "pinia";

export const useCartStore = defineStore("cart", {
  state: () => ({
    total: 0,
    cartItems: [], // 存储每个商品的点击次数和价格
    totalAmount: 0, // 总价
    detailData: {}, // 存储每个商品的详细信息
  }),
  actions: {
    // 总个数
    increment() {
      this.total++;
    },
    // 商品添加的列表
    addCartItem(item) {
      const existingIndex = this.cartItems.findIndex(
        (cartItem) => cartItem.id === item.id
      );
      if (existingIndex !== -1) {
        // 如果商品已存在，则增加点击次数
        this.cartItems[existingIndex].count++;
        this.total++;
      } else {
        // 如果商品不存在，则添加到数组中，点击次数为1
        this.cartItems.push({ ...item, count: 1 });
        console.log(this.cartItems);
      }
      this.recalculateTotalAmount();
    },
    // 商品减少的列表
    removeCartItem(item) {
      const existingIndex = this.cartItems.findIndex(
        (cartItem) => cartItem.id === item.id
      );
      if (existingIndex !== -1) {
        // 如果商品已存在，则减少点击次数
        this.cartItems[existingIndex].count--;
        this.total--;
        if (this.cartItems[existingIndex].count === 0) {
          // 如果点击次数为0，则从数组中移除该商品
          this.cartItems.splice(existingIndex, 1);
        }
      }
      this.recalculateTotalAmount();
    },
    // 计算总价
    recalculateTotalAmount() {
      this.totalAmount = this.cartItems.reduce((sum, cartItem) => {
        return sum + cartItem.price * cartItem.count;
      }, 0);
    },
    // 清空购物车
    clearCart() {
      this.cartItems = [];
      this.total = 0;
      this.totalAmount = 0;
    },
  },
});
